home *** CD-ROM | disk | FTP | other *** search
/ MacHack 1999 / MacHack 1999.toast / Papers / aSEPiA example source / Application / CPluginManager.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-06-25  |  1.0 KB  |  47 lines  |  [TEXT/CWIE]

  1. /*---------------------------------------------------------------
  2.  
  3.     CPluginManager.h
  4.     
  5.     This object initializes and keeps track of plugins in the plugin
  6.     folder.
  7.     
  8. ---------------------------------------------------------------*/
  9.  
  10. #ifndef CPluginManager_H
  11. #define CPluginManager_H
  12. #include "IInterfaceProvider.h"
  13. #include <TArray.h>
  14. #include "IPluginInfoIntf.h"
  15. #include "CPlugin.h"
  16.  
  17. #pragma warn_hidevirtual off
  18. template class TArray<CPlugin*>;
  19. #pragma warn_hidevirtual reset
  20.  
  21. class CPluginManager
  22. {
  23. public:
  24.  
  25.                     CPluginManager();
  26.                     ~CPluginManager();
  27.                     
  28.             void    ReadPluginDir();
  29.             short    GetPluginCount() { return mPluginList.GetCount(); };
  30.         CPlugin*    GetPluginByIndex( short index );
  31.         
  32.             void    GetPluginDescriptorbyIndex( short index, char* outName );
  33.             
  34.         CPlugin*    GetCurrentPlugin();
  35.             void    SetCurrentPluginIndex( short inIndex ) { mCurrIndex = inIndex; };
  36.  
  37. private:
  38.             void     CreateFileList( FSSpec inDirSpec, bool inRecursive );
  39.             void    ProcessFile( FSSpec& inSpec );
  40.             
  41.     TArray<CPlugin*>    mPluginList;
  42.     
  43.             short    mCurrIndex;
  44.  
  45. };
  46.  
  47. #endif